package com.gem.day13;

import java.io.*;

/**
 * 本类用来演示Java IO流之字节输入流
 * 
 * @author easonsy
 * 2020年8月4日 下午2:28:44
 */
public class InputStreamDemo {
	public static void main(String[] args) {
		/*//把本地的一个笔记文件读取到内存中
		InputStream is = null;
		try {
			//根据源头或者目标选取合适的IO流对象
			is = new FileInputStream("D:\\IO\\文件.pdf");
			//定义变量保存读取到的字节
			int len = -1;
			//循环读取每个字节
			while ((len = is.read()) != -1) {
				System.out.println(len);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			//关闭流,释放资源
			//非空判断
			if (is != null) {
				try {
					is.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}*/

		//使用try的自动释放资源能力简写代码
		try (InputStream is = new FileInputStream("D:\\IO\\笔记.txt")) {
			System.out.println(new File("D:\\IO\\笔记.txt").length());
			int len = -1;
			while ((len = is.read()) != -1) {
				//流中剩余数据量
				//注意:在刚创建IO流时,即还没发生读取时,这个大小即文件大小
				System.out.println("==>" + is.available());

				System.out.println((char) len);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
